package cn.doitedu.day03

/**
 * Scala中的集合分为不可变集合和可变集合(跟使用val或var修饰没有关系)
 *
 * 不可变集合：长度、内容都不可以改变
 * 可变集合：长度，内容可以改变
 *
 * Array（定长数组，长度不可变，但是数组中的内容可表）
 *
 *
 *
 */
object ListDemo {

  def main(args: Array[String]): Unit = {

    //immutable是不可变的意思
    //scala.collection.immutable.List
    val lst1 = List(1,2,3,4,5,7)

    //再定义一个List
    val lst2 = List(5,6,7,8)

    //将两个list按照先后顺序进行合并，生成一个新的List，原来的List不变
    val lst3 = lst1 ++ lst2

    //println(lst3)

    //生成一个新的List，不是在原来的基础上
    //val lst4 = lst1.+:(6)
    //联想记忆：+号在冒号的后面，就是将数据放到List的后面
    val lst4  = lst1 :+ 6

    //一个元素在前，然后调用+：方法，加号在冒号的前面，将元素放在list的前面
    val lst5 = 6 +: lst1
    val lst6 =  lst1.+:(6)

    println(lst4)
    println(lst5)


    //求并集（不会去重）
    val res1 = lst1.union(lst2)
    println(res1)

    //求交集
    val res2 = lst1.intersect(lst2)
    println(res2)
    //
    val res3 = lst1.diff(lst2)
    println(res3)
  }
}
